package de.ama.view.balloontip;

/**
 * Kleine Hilfsklasse f�r das Erzeugen von HTML f�r den balloontip.
 * <p/>
 * Date: 09.08.11<br>
 * Author: Jan Weidner<br>
 */
public class BalloonHtmlHelper {

    final static String body = "<body>";

    /**
     * Fügt ein div-Element mit einer angegebenen Maximalbreite hinzu, damit der Tooltip im Falle fehlender Zeilenumbr�che
     * nicht allzu breit wird.
     * <p/>
     * Berücksichtigt darüberhinaus die Tatsache, dass der übergebene HTML-Code entweder bereits f�hrende HTML-Tags enth�lt
     * oder aus plain Text besteht.
     * @return
     */
    public static String asHtml(String str) {
        return asHtml(str,400);
    }

    public static String asHtml(String str, int width) {
        String res;

        String div = "<div width="+width+" >";
        if (str.toLowerCase().contains(body)) {
            //Hilfetext ist bereits in HTML hinterlegt.
            //\n darf nicht durch <br/> ersetzt werden, da das generierte HTML ebenfalls \n für die strukturierte Formatierung verwendet
            //(z.B. "<html>\n  <head>" und damit zu viele Zeilenumbrüche in dargestellt würden
            res = str.replaceAll(body, body + div).replaceAll("</body>", "</div></body>");
        } else {
            //Hilfetext enthält noch kein HTML
            final String helpTextLineBreaked = str.replace("\n", "<br/>");
            res = String.format("<html></head>%s %s %s</div></html>", body, div, helpTextLineBreaked);
            //return getHelpText().replaceAll("\n", "<br/>").replaceAll(body, "<body>" + div).replaceAll("</body>", "</div></body>"); // String.format("<html><div width=400>%s</div></html>", );
        }

        return res;
    }
}
